package cn.hackcloud.concurrency.observable;

/**
 * 并发编程网
 * www.ibfbc.com
 */
public interface Observable {
    /**
     * 线程的生命周期
     */
    enum Cycle {
        STARTED, RUNNING, DONE, ERROR
    }

    /**
     * 获取当前任务的生命周期状态
     */
    Cycle getCycle();

    /**
     * 定义启动线程的方法、主要是为了屏蔽Thread其他方法
     */
    void start();

    /**
     * 定义线程的中断方法
     */
    void interrupt();
}
